package com.myspring.config;

/**
 * ClassName: SpringConfig
 * Package: com.mystring.config
 * Description:
 *
 * @Author 刘英杰
 * @Create 2024/12/22 19:16
 * @Version 1.0
 */

import org.apache.commons.dbcp2.BasicDataSource;
import org.apache.commons.dbutils.QueryRunner;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.*;

import javax.sql.DataSource;
import java.sql.Connection;

/**
 * 总结
 * @Configuration//代表这是一个Spring配置类,相当于将XML中配置转换成Java类和注解形式
 * @ComponentScan("com.myspring")//相当于<context:component-scan base-package="com.myspring"/>
 * @PropertySource("properties配置文件的路径")//加载properties配置文件的路径
 * @Value("${key}")//读取properties配置文件中的值
 * @Bean("id") 用于返回实例的方法上, 相当于将方法的返回值定义成一个Bean
 * 	      Bean的id默认就是方法名
 *
 */


/**
 * 这个类作为spring的配置类,取代spring的配置文件
 */
@Configuration//代表这是一个Spring配置类,相当于将XML中配置转换成Java类和注解形式(相当于大框架)
@ComponentScan("com.myspring")//相当于<context:component-scan base-package="com.myspring"/>
@PropertySource("classpath:db.properties")
@Import(DBConfig.class)
public class SpringConfig {

    @Bean("threadLocal")
    public ThreadLocal<Connection> createThreadLocal() {
        return new ThreadLocal<>();
    }
}
